(function(){
	moneyLook.DB = {};
	
	var db = Ti.Database.open('moneylook');
	db.execute('CREATE TABLE IF NOT EXISTS moneyBook (id INTEGER PRIMARY KEY, note TEXT, montant INTEGER, insertdate INTEGER, from_contact TEXT, to_contact TEXT) ');
	db.close();
	
	moneyLook.DB.getAll = function()
	{
		var db = Ti.Database.open('moneylook');
		var rows = db.execute('SELECT * FROM moneybook');
		
		var data = [];
		
		while(rows.isValidRow())
		{
			data.push({
				id:rows.getFieldByName('id'),
				note: rows.getFieldByName('note'),
				montant: Number(rows.getFieldByName('montant')),
				date: Number(rows.getFieldByName('insertdate')),
				from: rows.getFieldByName('from_contact'),
				to: rows.getFieldByName('to_contact')
			});
			
			rows.next();
		}
		
		rows.close();
		db.close();
		
		return data;
	};
	
	moneyLook.DB.getAllExpense = function()
	{
		var db = Ti.Database.open('moneylook');
		var rows = db.execute("SELECT * FROM moneybook WHERE from_contact IS NOT null AND from_contact != ''");
		
		var data = [];
		
		while(rows.isValidRow())
		{
			data.push({
				id:rows.getFieldByName('id'),
				note: rows.getFieldByName('note'),
				montant: Number(rows.getFieldByName('montant')),
				date: Number(rows.getFieldByName('insertdate')),
				from: rows.getFieldByName('from_contact'),
				to: rows.getFieldByName('to_contact')
			});
			
			rows.next();
		}
		
		rows.close();
		db.close();
		
		return data;
	};
	
	moneyLook.DB.getAllRepay = function()
	{
		var db = Ti.Database.open('moneylook');
		var rows = db.execute("SELECT * FROM moneybook WHERE to_contact IS NOT null AND to_contact != ''");
		
		var data = [];
		
		while(rows.isValidRow())
		{
			data.push({
				id:rows.getFieldByName('id'),
				note: rows.getFieldByName('note'),
				montant: Number(rows.getFieldByName('montant')),
				date: Number(rows.getFieldByName('insertdate')),
				from: rows.getFieldByName('from_contact'),
				to: rows.getFieldByName('to_contact')
			});
			
			rows.next();
		}
		
		rows.close();
		db.close();
		
		return data;
	};
	
	moneyLook.DB.addExpense = function(_note, _montant, _contact)
	{
		var db = Ti.Database.open('moneylook');
		db.execute("INSERT INTO moneybook (note, montant, insertdate, from_contact, to_contact) VALUES (?, ?, ?, ?, ?)", 
			_note, _montant, new Date().getTime(), _contact, null);
			
		db.close();
		
		Ti.App.fireEvent("databaseUpdated");
	};
	
	moneyLook.DB.addRepay = function(_note, _montant, _contact)
	{
		var db = Ti.Database.open('moneylook');
		db.execute("INSERT INTO moneybook (note, montant, insertdate, from_contact, to_contact) VALUES (?, ?, ?, ?, ?)", 
			_note, _montant, new Date().getTime(), null, _contact);
			
		db.close();
		
		Ti.App.fireEvent("databaseUpdated");
	};
	
	moneyLook.DB.getRepayContact = function()
	{
		var db = Ti.Database.open('moneylook');
		var rows = db.execute("SELECT DISTINCT to_contact FROM moneybook");
		
		var data = [];
		
		while(rows.isValidRow())
		{
			data.push({
				title:rows.getFieldByName('to_contact'),
			});
			
			rows.next();
		}
		
		rows.close();
		db.close();
		
		return data;
	};
	
	
})()
